<?php

namespace App\Http\Middleware;

use Closure;
use App\Http\Controllers\Controller;
use DB;
use Hash;



class LoginMiddleware extends Controller
{
    /**
     *  登录信息对比
     */
    public function handle($request, Closure $next)
    {
       
        // 自动验证表单
        $this -> validate($request,[
            'id' => 'required',
            'password' => 'required',
            'code' => 'required',
        ],[
            'id.required' => '用户名不能为空',
            'password.required' => '密码不能为空',
            'code.required' => '验证码不能为空',
        ]);  

        // 获取登录页面提交的信息
        $arr = $request -> except('_token');
        
        // 判断验证码是否正确
        if (session('code') != $arr['code']) {
            return back() -> with('error','验证码不正确');
        };
        
        // 查询数据表的信息
        $data = DB::table('administrators') -> where('id','=',$arr['id']) -> first();
        
        // 判断用户名是否存在
        if (empty($data)) {
            return back() -> with('error','用户名不存在');
        }

        // 判断用户名状态
        if ($data['status'] != 0) {
            return back() -> with('error','用户名已被禁用');
        }

        // 解密密码
        $res = Hash::check($arr['password'], $data['password']);
        
        // 判断密码是否正确
        if ($res) {
            return $next($request);
        } else {
            return back() -> with('error','密码不正确');
        }
    }
}
